return GLib.access("/sys/fs/cgroup/systemd", 0) >= 0;
}
+function versionCompare(required, reference) {
+ required = required.split('.');
+ reference = reference.split('.');
+
+ for (let i = 0; i < required.length; i++) {
+ if (required[i] != reference[i])
+ return required[i] < reference[i];
+ }
+
+ return true;
+}
+
+function canLock() {
+ try {
+ let params = GLib.Variant.new('(ss)', ['org.gnome.DisplayManager.Manager', 'Version']);
+ let result = Gio.DBus.system.call_sync('org.gnome.DisplayManager',
+ '/org/gnome/DisplayManager/Manager',
+ 'org.freedesktop.DBus.Properties',
+ 'Get', params, null,
+ Gio.DBusCallFlags.NONE,
+ -1, null);
+
+ let version = result.deep_unpack()[0].deep_unpack();
+ return versionCompare('3.5.91', version);
+ } catch(e) {
+ return false;
+ }
+}
+
let _loginManager = null;
/**
const Params = imports.misc.params;
const RunDialog = imports.ui.runDialog;
const Layout = imports.ui.layout;
+const LoginManager = imports.misc.loginManager;
const LookingGlass = imports.ui.lookingGlass;
const NotificationDaemon = imports.ui.notificationDaemon;
const WindowAttentionHandler = imports.ui.windowAttentionHandler;
const SessionMode = imports.ui.sessionMode;
const ShellDBus = imports.ui.shellDBus;
const ShellMountOperation = imports.ui.shellMountOperation;
-const UnlockDialog = imports.ui.unlockDialog;
const WindowManager = imports.ui.windowManager;
const Magnifier = imports.ui.magnifier;
const XdndHandler = imports.ui.xdndHandler;
overview = new Overview.Overview();
wm = new WindowManager.WindowManager();
magnifier = new Magnifier.Magnifier();
- if (UnlockDialog.isSupported())
+ if (LoginManager.canLock())
screenShield = new ScreenShield.ScreenShield();
else
screenShield = new ScreenShield.ScreenShieldFallback();
// The timeout before going back automatically to the lock screen (in seconds)
const IDLE_TIMEOUT = 2 * 60;
-function versionCompare(required, reference) {
- required = required.split('.');
- reference = reference.split('.');
-
- for (let i = 0; i < required.length; i++) {
- if (required[i] != reference[i])
- return required[i] < reference[i];
- }
-
- return true;
-}
-
-function isSupported() {
- try {
- let params = GLib.Variant.new('(ss)', ['org.gnome.DisplayManager.Manager', 'Version']);
- let result = Gio.DBus.system.call_sync('org.gnome.DisplayManager',
- '/org/gnome/DisplayManager/Manager',
- 'org.freedesktop.DBus.Properties',
- 'Get', params, null,
- Gio.DBusCallFlags.NONE,
- -1, null);
-
- let version = result.deep_unpack()[0].deep_unpack();
- return versionCompare('3.5.91', version);
- } catch(e) {
- return false;
- }
-}
-
const UnlockDialog = new Lang.Class({
Name: 'UnlockDialog',
Extends: ModalDialog.ModalDialog,